<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <!-- 
vm的一生（vm的生命周期）
将要创建   调用beforeCreate函数
创建完毕   调用created函数
将要挂载   调用beforeMount函数
挂载完毕   调用mounted函数   重要
将要更新   调用beforeUpdate函数
更新完毕   调用update函数
将要销毁   调用beforeDestroy函数  重要
销毁完毕   调用destroyed函数
     -->
</head>

<body>
    <div id="root">
        <h2>当前的n值为:{{n}}</h2>
        <button @click="add">按钮+1</button>
        <button @click="bye">点我销毁</button>
    </div>
    <script src="../vue.js"></script>
    <script>
        new Vue({
            el: '#root',
            data: {
                n: 1
            },
            methods: {
                add() {
                    console.log('add');
                    this.n++
                },
                bye()
                {
                    console.log('bye');
                    this.$destroy()  //销毁掉vm  功能不能用了 但页面还在 清理它与其它实例的连接，解绑它的全部指令及事件监听器
                }
            },
            watch:{
                n(){
                    console.log('n变了');
                }
            },
            //顺序来的
            beforeCreate() {
                console.log('beforeCreate');
            },
            created() {
                console.log('created');
            },
            beforeMount() {
                console.log('beforeMount');
            },
            mounted() {
                console.log('mounted');
            },
            beforeUpdate() {   //数据是新的页面还是旧的
                console.log('beforeUpdate');
                console.log(this.n);
                //debugger  //停住
            },
            updated() {
                console.log('updated');
                console.log(this.n);
            },
            //能找到数据 能找到函数 但无法修改数据了 无法再操作数据了
            beforeDestroy() {
                console.log('beforeDestroy');
                this.add();
                console.log(this.n);
            },
            //连数据都访问不到了
            destroyed() {
                console.log('destroyed');
            },
        })
    </script>
</body>

</html>